//设立尾指针指向排序后链表的最后一个元素
//从第二个元素开始,先和尾指针比较,如果大于等于尾指针,将尾指针置为当前元素
//否则,从头开始,找到比当前元素大的那个节点,插入在它前面
ListNode* insertionSortList(ListNode* head) {
	if (head == nullptr) return nullptr;
	ListNode *L, *p, *q = head->next, *r = head, *temp;
	L = new ListNode(0);
	L->next = head;
	while (q) {
		if (r->val <= q->val) {
			r = r->next;
		} else {
			p = L;
			while (p->next->val <= q->val)
				p = p->next;
			r->next = q->next;
			q->next = p->next;
			p->next = q;
		}
		q = r->next;
	}
	return L->next;
}